package ljl.alg.jianzhioffer.round2;

import java.util.Arrays;
import java.util.Collections;
import java.util.List;

public class _58_1_reverse_words {
    
    /**
     * 我拉的粑粑，也通过了不过
     *
     * 我拉的粑粑，和标准答案几乎完全类似，所以不是粑粑
     * */
    public String reverseWords(String s) {
        s = s.trim();
        StringBuilder sb = new StringBuilder(s.length());
        int j = s.length() - 1, i = j;
        while (i >= 0) {
            while (i >= 0 && s.charAt(i) != ' ') i--;
            sb.append(s, i + 1, j + 1).append(' ');
            while (i >= 0 && s.charAt(i) == ' ') i--;
            j = i;
        }
        // 这省了一个 delete 但是多了个 trim
        return sb.toString().trim();
    }
    
    // 好看，但是慢不少
    public String reverseWords2(String s) {
        s = s.trim();
        String[] split = s.split("\\s+");
        List<String> words = Arrays.asList(split);
        Collections.reverse(words);
        return String.join(" ", words);
    }
}
